package org.magnum.soda.example.controllers.searchlocationfragment; import java.util.Date; import java.util.List; import org.magnum.soda.example.maint.MaintenanceReport; import org.magnum.soda.example.maint.R; import android.content.Context; import android.database.DataSetObserver; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.text.format.DateFormat; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.ListAdapter; import android.widget.TextView; public class ReportsAdapter extends ArrayAdapter<MaintenanceReport> { private static final String TAG = ReportsAdapter.class.getName(); private List<MaintenanceReport> mReports; private Context mContext; public ReportsAdapter(Context context) { super(context,0); mContext = context; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View reportView = inflater.inflate(R.layout.report_item_view, parent,false); if(mReports != null) { MaintenanceReport report = mReports.get(position); TextView title = (TextView) reportView.findViewById(R.id.textViewReportTitle); title.setText(report.getTitle()); TextView content = (TextView) reportView.findViewById(R.id.textViewReportContent); content.setText(report.getContents()); TextView location = (TextView) reportView.findViewById(R.id.textViewReportLocation); //This should be location. Using date because maintenance report doesn't apparently doesn't have a location attribute Date date = report.getCreateTime_(); if(date != null) { java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(mContext); location.setText(dateFormat.format(date)); } ImageView image = (ImageView) reportView.findViewById(R.id.imageViewReportImage); if(report.getImageData() != null) { Bitmap imageBitmap = BitmapFactory.decodeByteArray(report.getImageData() , 0, report.getImageData().length); if(imageBitmap != null) { image.setImageBitmap(imageBitmap); } } } return reportView; } @Override public int getCount() { if(mReports != null) { return mReports.size(); } else { return 0; } } public void update(List<MaintenanceReport> reports) { Log.d(TAG,"update()"); mReports = reports; } }